package com.prosay.servlet;

import java.io.IOException;
import java.util.List;

import javax.servlet.ServletContext;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;


/**
 * 用作用户登录的servlet
 * @author dongliang
 *
 */
public class LoginServlet extends HttpServlet {
    
	
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	/*public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException{
		doPost(request, response);
	}*/
	/*public void doPost(HttpServletRequest request,HttpServletResponse response) throws IOException{
		System.out.println("来到了LoginServlet");
		request.setCharacterEncoding("UTF-8");
		
		response.setContentType("text/html;charset=UTF-8");
		// 前台表单，前台的参数名
		String userName = request.getParameter("userName");
		
		String userNameTr = new String(userName.getBytes("ISO-8859-1"),"UTF-8");
		// 获取的会话对象，在被调用的时候会被创建
		HttpSession session = request.getSession();
		session.setAttribute("userName", userName);
		
		// 设置一个会话的超时时间   上一次访问多久之后，自动销毁这个会话对象
		session.setMaxInactiveInterval(1800*1000);
		// 如何在servlet中获取上下文对象呢？
		//ServletContext application = req.getServletContext(); 
        // 利用req.getServletContext 和 this.getServletContext() 有什么区别？
		
		// 在servlet 中获取上下文对象
		ServletContext application = this.getServletContext();
		
		// 获取上下文 中的在线用户列表
		List<String> onLineList = (List<String>)application.getAttribute("users");
		
		onLineList.add(userName);
		
		// 跳转到聊天室界面  将请求进行重定向（就是李桑说的请求重定向）
		
	    response.sendRedirect("chatroom/index.html");	
	}*/
	
	@Override
	public void service(HttpServletRequest request,HttpServletResponse response) throws IOException{
		
		String userName = request.getParameter("userName");
		// 获取的会话对象，session 在被调用的时候，会被创建
		HttpSession session = request.getSession(true);// 里面这个true 可写可不写，不写也是true
		// 第一次请求，如果登录成功，则在会话中记录登录的用户名
		session.setAttribute("userName", userName);
		
		// 在servlet  中获取上下文对象
		ServletContext application = this.getServletContext();
		List<String> onlineList = (List<String>)application.getAttribute("users");
		onlineList.add(userName);
		
		// 既然登录成功了，那么下一步就应该 跳转到聊天室页面
		response.sendRedirect("chatroom/index.html");
		
	}
}
